package com.mobile.service.inter.system;

import com.mobile.service.dto.DataDictionaryDTO;
import com.mobile.service.dto.DataDictionaryQueryDTO;
import com.mobile.util.Page;
import com.mobile.util.PageData;
import com.mobile.util.PageResult;

import java.util.List;
import java.util.Map;

/**
 * 数据字典Service接口
 */
public interface DictService {

    /**
     * 数据字典列表（分页）
     * @param dictionaryQueryDTO
     * @return
     */
    PageResult<DataDictionaryDTO> getDictListPage(DataDictionaryQueryDTO dictionaryQueryDTO) throws Exception;

    /**
     * 根据字典ID查询
     * @param dicNo
     * @return
     */
    PageData getDictByNo(String dicNo) throws Exception;

    /**
     * 添加字典
     * @param pd
     * @return
     */
    Map<String, Object> addDict(PageData pd) throws Exception;

    /**
     * 修改字典
     * @param pd
     */
    Map<String, Object> updateDict(PageData pd) throws Exception;

    /**
     * 删除字典
     * @param pd
     * @return
     */
    Map<String, Object> removeDict(PageData pd) throws Exception;

    /**
     * 添加字典项
     * @param pd
     * @return
     */
    Map<String, Object> addDictItem(PageData pd) throws Exception;

    /**
     * 根据字典ID和字典项值查询字典项
     * @param pd
     * @return
     */
    PageData getDictItemByNoAndValue(PageData pd) throws Exception;

    /**
     * 修改字典项
     * @param pd
     * @return
     */
    Map<String, Object> updateDictItem(PageData pd) throws Exception;

    /**
     * 删除字典项
     * @param pd
     */
    void removeDictItem(PageData pd) throws Exception;

    /**
     * 根据字典ID查询所有字典项值
     * @param dicNo
     * @return
     */
    List<PageData> getDictItemByNo(String dicNo) throws Exception;

    /**
     * 根据字典ID查询所有字典项值(前端用)
     * @param dicNo
     * @return
     */
    List<PageData> getDictItemByNoPre(String dicNo) throws Exception;

    /**
     * 根据字典ID和拓展字段4查询所有字典项值
     * @param pd
     * @return
     */
    List<PageData> getDictItemByNoAndExtendFour(PageData pd) throws Exception;

}
